// 56. 合并区间
// https://leetcode.cn/problems/merge-intervals/

/**
示例 1：

输入：intervals = [[1,3],[2,6],[8,10],[15,18]]
输出：[[1,6],[8,10],[15,18]]
解释：区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例 2：

输入：intervals = [[1,4],[4,5]]
输出：[[1,5]]
解释：区间 [1,4] 和 [4,5] 可被视为重叠区间。
 */

/**
 * @param {number[][]} intervals
 * @return {number[][]}
 */
var merge = function (intervals) {
    intervals.sort((a, b) => a[0] - b[0]);

    for (let i = 0; i < intervals.length - 1; i++) {
        const arr1 = intervals[i];
        const arr2 = intervals[i + 1];

        let mergeArr = checkMerge(arr1, arr2);

        if (mergeArr != null) {
            intervals.splice(i, 2, mergeArr);
            i = i - 1;
        }
    }

    console.log(JSON.stringify(intervals));
    return intervals;
};

var checkMerge = function (arr1, arr2) {
    if (arr1[1] >= arr2[0]) {
        return [arr1[0], Math.max(arr2[1], arr1[1])];
    }

    return null;
};

merge([
    [1, 3],
    [2, 6],
    [8, 10],
    [15, 18],
]);

merge([
    [1, 4],
    [4, 5],
]);
